package com.nlx.notes.module.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nlx.notes.module.bean.dto.FlowPageQueryDTO;
import com.nlx.notes.module.bean.dto.FlowSaveDTO;
import com.nlx.notes.module.bean.dto.flow.UpdateDBAmountDTO;
import com.nlx.notes.module.bean.dto.querydb.FlowDayQueryDbDTO;
import com.nlx.notes.module.entity.FlowDayStatistics;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author nlx
 * @since 2024-12-15
 */
public interface IFlowDayStatisticsService extends IService<FlowDayStatistics> {

    /**
     * 通过天查询数据
     * @param date 日期
     * @return FlowDayStatistics
     */
    FlowDayStatistics findByDay(String date,Long userId,Long bookId);

    /**
     * 通过条件查询
     * @param flowPageQueryDTO 参数
     * @return FlowDayStatistics
     */
    IPage<FlowDayStatistics> findByCondition(FlowPageQueryDTO flowPageQueryDTO);


    List<FlowDayStatistics> findInDay(Set<String> dayTimes,Long bookId,Long userId);

    void saveDayFlow(FlowSaveDTO flowSaveDTO);

    Map<String, FlowDayStatistics> findDayMapByDays(Set<String> dayTimes,Long bookId,Long userId);

    /**
     * 更新天金额
     * @param updateDBAmountDTO 参数
     */
    void deleteFlow(UpdateDBAmountDTO updateDBAmountDTO);

    
    List<FlowDayStatistics> findListByCondition(FlowDayQueryDbDTO flowDayQueryDbDTO);
}
